/**
 * 显示字段值或 -
 * @param value 字段值
 * @returns 显示字符串
 */
export function useFormatterValueOrLine(value: string | number) {
  switch (typeof value) {
    case 'number': {
      return value.toString()
    }
    case 'string': {
      // 超过1000, 截取
      if (value.length > 1000) {
        value = `${value.slice(0, 1000)} 等...`
      }
      break
    }
    case 'object': {
      if (value !== null) {
        value = JSON.stringify(value)
      }
      break
    }
  }
  return value || '-'
}

/**
 * 构造【name（empid）】格式
 * @param row 行数据
 * @param propName 名字字段名
 * @param propId ID字段名
 * @returns 显示字符串
 */
export function useFormatterEmpNameAndId<T extends Record<string, any>>(
  row: T,
  propName: keyof T = 'empName',
  propId: keyof T = 'empNo'
) {
  return `${useFormatterValueOrLine(row[propName])}（${useFormatterValueOrLine(
    row[propId]
  )}）`
}

